package org.jeecg.modules.ParameterModule.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.apache.ibatis.annotations.Param;
import org.jeecg.modules.ParameterModule.entity.*;

import java.util.List;

public interface LocationMapper extends BaseMapper<LocationInfo> {
    /**
     * 分页查询仓库
     */
    IPage<WarehouseInfo> query_WarehousePageList(@Param("page")Page<WarehouseInfo> page, @Param("queryName")String queryName, @Param("queryCode")String queryCode);
    /**
     * 增加仓库
     */
    int add_warehouse(WarehouseInfo datainfo);
    /**
     * 编辑仓库
     */
    int update_warehouse(WarehouseInfo datainfo);
    /**
     * 删除仓库
     */
    int delete_warehouse(@Param("id")String id);
    /**
     * 根据仓库编码查询：0编码，1名称，2id
     */
    WarehouseInfo query_warehouseBycode(@Param("code")String code,@Param("type")int type);
    /**
     * 查询所有仓库
     */
    List<WarehouseInfo> query_allwarehouse();

    /**
     * 分页查询库区
     */
    IPage<ReservoirInfo> query_ReservoirPageList(@Param("page")Page<ReservoirInfo> page, @Param("topId")String topId,@Param("queryName")String queryName, @Param("queryCode")String queryCode);
    /**
     * 增加库区
     */
    int add_Reservoir(ReservoirInfo datainfo);
    /**
     * 编辑库区
     */
    int update_Reservoir(ReservoirInfo datainfo);
    /**
     * 删除/启用库区
     */
    int delete_Reservoir(@Param("id")String id,@Param("status")String status);
    /**
     * 根据库区编码查询：0编码，1名称，2id
     */
    ReservoirInfo query_ReservoirInfoById(@Param("top_id")String top_id,@Param("code")String code,@Param("type")int type);

    /**
     * 分页查询货架
     */
    IPage<ShelvesInfo> query_shelvesPageList(@Param("page")Page<ShelvesInfo> page, @Param("topId")String topId, @Param("queryName")String queryName, @Param("queryCode")String queryCode);
    /**
     * 增加货架
     */
    int add_shelves(ShelvesInfo datainfo);
    /**
     * 编辑货架
     */
    int update_shelves(ShelvesInfo datainfo);
    /**
     * 删除/启用货架
     */
    int delete_shelves(@Param("id")String id,@Param("status")String status);
    /**
     * 根据id查询货架:0编码，1名称，2id
     */
    ShelvesInfo query_shelvesInfoById(@Param("top_id")String top_id,@Param("code")String code,@Param("type")int type);

    /**
     * 分页查询库位
     */
    IPage<LocationInfo> query_LocationPageList(@Param("page")Page<LocationInfo> page,@Param("topId")String topId,@Param("queryName")String queryName, @Param("queryCode")String queryCode);
    /**
     * 增加库位
     */
    int add_Location(LocationInfo datainfo);
    /**
     * 编辑库位
     */
    int update_Location(LocationInfo datainfo);
    /**
     * 删除/启用库位
     */
    int delete_Location(@Param("id")String id,@Param("status")String status);
    /**
     * 根据id查询库位:0编码，1名称，2id
     */
    LocationInfo query_LocationInfoById(@Param("top_id")String top_id,@Param("code")String code,@Param("type")int type);

    /**
     * 根据货架id统计下面所有的库位
     */
    int count_shelves_location(@Param("top_id")String top_id);

}
